An electronic dictionary can be an essential component for applications that perform linguistic analysis, such as IME (input method editor), spell checker, hand writing recognizer, speech dictation, and so on. However, as the nature of the natural language and software evolves, it is impossible to include all the necessary words in an application, because application performance can degrade, new words appear after a product release, domain-specific terms can decrease the accuracy for users which do not belong to the domain, and so on.
Common approaches to addressing this problem include providing a domain-specific dictionary as an add-on dictionary, or providing a feature to create a custom dictionary for personal use, for example. A problem with the current add-on dictionary and custom dictionary is the use of propriety formats for specific applications. Thus, these propriety formats are very difficult or impossible to share across other applications, despite that terminologies are common for a user or a user group across applications.
Another problem of the add-on dictionary is the granularity of the dictionary. In the marketplace, dictionaries are available only for large granularity domains, which have large numbers of users, because dictionaries for small domains are difficult to commercialize.